1 /*
2 * File: Autopilot.c
3 *
4 * Code generated for Simulink model 'Autopilot'.
5 *
6 * Model version : 1.152
7 * Simulink Coder version : 8.5 (R2013b) 08-Aug-2013
8 * C/C++ source code generated on : Mon Feb 03 08:38:36 2014
9 *
10 * Target selection: ert.tlc
11 * Embedded hardware selection: 32-bit Embedded Processor
12 * Code generation objectives: Unspecified
13 * Validation result: Not run
14 */
15
16 #include "Autopilot.h"
17 #include "Autopilot_private.h"
18
19 /* Start for referenced model: 'Autopilot' */
20 void Autopilot_Start(rtDW_Autopilot *localDW)
21 {
22 /* Start for ModelReference: '<Root>/Pitch_Autopilot' */
23 pitch_ap_Start(&(localDW->Pitch_Autopilot_DWORK1.rtdw));
24 }
25
26 /* Output and update for referenced model: 'Autopilot' */
27 void Autopilot(const slBus1 *rtu_AirData, const slBus2 *rtu_Inertial, const
28 boolean_T *rtu_APEng, const boolean_T *rtu_HDGMode, const
29 boolean_T *rtu_ALTMode, const real_T *rtu_HDGRef, const real_T
30 *rtu_TurnKnob, const real_T *rtu_ALTRef, const real_T
31 *rtu_PitchWheel, real_T *rty_AileronCmd, real_T *rty_ElevatorCmd,
32 real_T *rty_RudderCmd, rtDW_Autopilot *localDW)
33 {
34 /* local block i/o variables */
35 real_T rtb_airspeed;
36 real_T rtb_phi;
37 real_T rtb_theta;
38 real_T rtb_q;
39 real_T rtb_r;
40 real_T rtb_alt;
41 real_T rtb_altRate;
42 real_T rtb_psi;
43 real_T rtb_p;
44
45 /* BusSelector: '<Root>/Bus Selector3' */
46 rtb_alt = rtu_AirData->alt;
47 rtb_altRate = rtu_AirData->altRate;
48 rtb_airspeed = rtu_AirData->airspeed;
49
50 /* BusSelector: '<Root>/Bus Selector4' */
51 rtb_phi = rtu_Inertial->phi;
52 rtb_psi = rtu_Inertial->psi;
53 rtb_p = rtu_Inertial->p;
54 rtb_theta = rtu_Inertial->theta;
55 rtb_q = rtu_Inertial->q;
56 rtb_r = rtu_Inertial->r;
57
58 /* ModelReference: '<Root>/Pitch_Autopilot' */
59 pitch_ap(&rtb_phi, &rtb_theta, &rtb_q, &rtb_r, &rtb_alt, &rtb_altRate,
60 &rtb_airspeed, rtu_APEng, rtu_ALTMode, rtu_ALTRef, rtu_PitchWheel,
61 rty_ElevatorCmd, &(localDW->Pitch_Autopilot_DWORK1.rtb),
62 &(localDW->Pitch_Autopilot_DWORK1.rtdw), 2.0, 0.5, 2.0);
63
64 /* ModelReference: '<Root>/Roll_Autopilot' */
65 roll_ap(&rtb_phi, &rtb_psi, &rtb_p, &rtb_airspeed, rtu_APEng, rtu_HDGMode,
66 rtu_HDGRef, rtu_TurnKnob, rty_AileronCmd,
67 &(localDW->Roll_Autopilot_DWORK1.rtb),
68 &(localDW->Roll_Autopilot_DWORK1.rtdw), 1.0, 1.0, 3.0, 0.015);
69
70 /* ModelReference: '<Root>/Yaw_Damper' */
71 yaw_damper(&rtb_phi, &rtb_r, &rtb_airspeed, rtu_APEng, rty_RudderCmd,
72 &(localDW->Yaw_Damper_DWORK1.rtb), 1.0);
73 }
74
75 /* Model initialize function */
76 void Autopilot_initialize(rtDW_Autopilot *localDW)
77 {
78 /* Registration code */
79
80 /* states (dwork) */
81 (void) memset((void *)localDW, 0,
82 sizeof(rtDW_Autopilot));
83
84 /* Model Initialize fcn for ModelReference Block: '<Root>/Pitch_Autopilot' */
85 pitch_ap_initialize(&(localDW->Pitch_Autopilot_DWORK1.rtb),
86 &(localDW->Pitch_Autopilot_DWORK1.rtdw));
87
88 /* Model Initialize fcn for ModelReference Block: '<Root>/Roll_Autopilot' */
89 roll_ap_initialize(&(localDW->Roll_Autopilot_DWORK1.rtb),
90 &(localDW->Roll_Autopilot_DWORK1.rtdw));
91
92 /* Model Initialize fcn for ModelReference Block: '<Root>/Yaw_Damper' */
93 yaw_damper_initialize(&(localDW->Yaw_Damper_DWORK1.rtb));
94 }
95
96 /*
97 * File trailer for generated code.
98 *
99 * [EOF]
100 */
101
|